package helper

import (
	"github.com/segmentio/ksuid"
	"math/rand"
	"time"
)

func GetKsuid() string{
	return ksuid.New().Next().String()
}

// 二倍均值算法
func DoubleAverage(count, amount int64) int64{

	if count == 1 {
		return amount
	}

	// 计算最大可调度金额
	maxAmount := amount - count * MinAmount
	// 计算最大可用平均值
	maxAvg := maxAmount / count
	// 二倍均值(防止出现0,因此加上 minAmount)
	doubleAvg := maxAvg * 2 + MinAmount
	// 随机红包金额序列元素,把二倍均值作为随机数的最大数
	rand.Seed(time.Now().UnixNano() + rand.Int63n(9999))
	return rand.Int63n(doubleAvg) + MinAmount
}
